package com.example.myapplication.s2

// Kotlin 在函数中定义参数是函数的函数
fun main() {
    loginAPI("Derry", "123456") { msg: String, code: Int ->
        println("登录的情况如下：msg: $msg, code: $code")
    }
}

// 模拟：数据库SQLServer
const val USER_NAME_SAVE_DB = "Derry"
const val USER_PWD_SAVE_DB = "123456"

//登录API 模仿前端
public fun loginAPI(username: String, userpwd: String, responseResult: (String, Int) -> Unit) {
    if(username == null || userpwd == null) {
        TODO("用户名或密码为null") // 出现问题，终止程序
    }
    // 做很多的效验 前端校验
    if(username.length > 3 && userpwd.length > 3) {
        if (wbeServiceLoginAPI(username, userpwd)) {
            //登录成功
            responseResult("login success", 200)
        } else {
            responseResult("login error", 400)
        }
    } else {
        TODO("用户名和密码不合格") //出现问题，终止程序
    }
}

//登录的API暴露者 服务器
private fun wbeServiceLoginAPI(name: String, pwd: String) : Boolean {
    return if(name == USER_NAME_SAVE_DB && pwd == USER_PWD_SAVE_DB) true else false
}